#ifndef PERSON_H
#define PERSON_H

#include <types.h>

#include <QVector>
#include <QString>

// SVN VERSIONING2
class Person
{
public:
	explicit Person();
	explicit Person( const ID &id,
	                 const QString &name,
	                 const QVector<ID> &booksList );

	// Sets the ID of the person.
	void setId( const ID &id );
	void setName( const QString &name );
	void setBorrowdBooksList( const QVector<ID> &booksList );

	void borrowBook( const ID &bookId );
	void returnBook( const ID &bookId );

	ID getId() const;
	QString getName() const;
	QVector<ID> getBorrowdBooksList() const;
	bool hasEverBorrowed() const;

private:
	ID m_id;
	QString m_name;
	QVector<ID> m_borrowedBooksList;
	bool m_everBorrowed;
};

#endif // PERSON_H
